The present invention relates to the general field of protecting non-volatile memories and accessing these memories.
The main functions of a non-volatile memory are to guarantee the storage of data over time, the integrity of the stored data and the use of these data.
Non-volatile memories generally provide storage in memory sectors, one sector being the smallest entity that can be accessed for reading or writing. Generally speaking, a software program dedicated to the management of memory sectors is implemented to allocate these sectors. This is, in this instance, the case for the non-volatile memory technology known with the name of Flash technology, where such software is called FTL, an acronym standing for “Flash Translation Layer”.
The use of non-volatile memory, for example such as Flash, is known in the chip card industry. In this way, memories using Flash technology are therefore built into the integrated circuit of the card and used to store code and permanent data. Such memories are generally small, several hundred kilobytes. They have a good level of security because they benefit from the security devices implemented on such circuits.
Indeed, there is a known way of protecting an integrated circuit by adding security devices to it, among others in the form of detectors that are capable of detecting anomalies in the operation of the integrated circuit, for example an frequency or operating voltage anomaly, or even that are capable of detecting anomalies in the environment of the integrated circuit, for example light detectors. The detection of such anomalies can be a sign that an attack is being carried out on the integrated circuit.
Such detectors are therefore connected to the microprocessor of the integrated circuit in order to trigger possible actions to counter, limit or prevent an attack, in particular countermeasures such as are known to those skilled in the trade.
However, it can happen that such memories are implemented in areas where few detectors have been integrated or that they are attacked in a specific manner to which the previously mentioned detectors are not sensitive. It can also happen that, in order to obtain a card with increased storage capacity, an additional non-volatile memory is implemented outside a protected area of the integrated circuit. Such an implementation is advantageous, for example, for storing proprietary programs that can then be downloaded and run from the program memory of the microprocessor.
In these cases, it is still necessary to guarantee the confidentiality and integrity of the stored data to the user, in particular if they are secure data.